Apache ANT Tasks হলো বিল্ট-ইন কার্যক্রম বা কমান্ড, যা বিভিন্ন ধরনের কাজ সম্পন্ন করতে ব্যবহৃত হয়। একটি টাস্ক (Task) হল Apache ANT এর মূল উপাদান, যা বিল্ড প্রসেস এর বিভিন্ন ধাপে নির্দিষ্ট কাজগুলি সম্পন্ন করতে ব্যবহার করা হয়। টাস্কগুলো সাধারণত XML কনফিগারেশন ফাইলের মাধ্যমে সংজ্ঞায়িত হয় এবং ডেভেলপারদের জন্য কম্পাইলেশন, প্যাকেজিং, কপি, ক্লিন ইত্যাদি কাজ সহজ করে তোলে।
Apache ANT হলো একটি Java ভিত্তিক বিল্ড টুল, যা বিল্ড টাস্ক চালাতে ব্যবহৃত হয়। টাস্ক (Task) হলো ANT এর মূল অংশ, যা প্রকল্পের একটি নির্দিষ্ট কাজ সম্পাদন করে। একটি Task হলো একটি কাজের নির্দিষ্ট নির্দেশনা, যেমন ফাইল কপি করা, ডিরেক্টরি তৈরি করা, জাভা ফাইল কম্পাইল করা, জার (JAR) ফাইল তৈরি করা ইত্যাদি।
ANT বিভিন্ন প্রকারের বিল্ট-ইন টাস্ক সরবরাহ করে, যা প্রজেক্ট বিল্ড এবং ম্যানেজমেন্টকে সহজ করে। এগুলো build.xml ফাইলে target এর ভেতরে ব্যবহৃত হয়। ANT এর প্রধান টাস্কগুলো ব্যবহার করে ডেভেলপাররা প্রজেক্টের বিভিন্ন কাজ স্বয়ংক্রিয়ভাবে সম্পাদন করতে পারে।
Apache ANT এর বিভিন্ন বিল্ট-ইন টাস্ক রয়েছে, যা বিভিন্ন কাজ সম্পন্ন করতে ব্যবহৃত হয়। নিচে কিছু গুরুত্বপূর্ণ ANT টাস্কের উদাহরণ দেওয়া হলো:
১. <echo>
: বার্তা প্রদর্শন করা
<echo>
টাস্কটি কোনো নির্দিষ্ট বার্তা প্রিন্ট করতে ব্যবহৃত হয়। এটি console এ বার্তা প্রদর্শন করার জন্য ব্যবহৃত হয়।
<target name="display-message">
<echo message="Hello, Apache ANT!" />
</target>
উপরের উদাহরণে, ANT চালালে কনসোলে "Hello, Apache ANT!"
বার্তা প্রদর্শিত হবে।
২. <mkdir>
: ডিরেক্টরি তৈরি করা
<mkdir>
টাস্কটি একটি নতুন ডিরেক্টরি তৈরি করতে ব্যবহৃত হয়।
<target name="create-directory">
<mkdir dir="build/classes" />
</target>
এটি build/classes নামে একটি ডিরেক্টরি তৈরি করবে।
৩. <javac>
: জাভা ফাইল কম্পাইল করা
<javac>
টাস্কটি Java ফাইল কম্পাইল করতে ব্যবহৃত হয়।
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes" />
</target>
এটি src ডিরেক্টরিতে থাকা সমস্ত .java ফাইল কম্পাইল করে build/classes ডিরেক্টরিতে সংরক্ষণ করবে।
৪. <jar>
: JAR ফাইল তৈরি করা
<jar>
টাস্কটি JAR ফাইল তৈরি করতে ব্যবহৃত হয়।
<target name="create-jar" depends="compile">
<jar destfile="build/MyProject.jar" basedir="build/classes" />
</target>
এই উদাহরণে, build/classes ডিরেক্টরির সমস্ত ক্লাস ফাইল থেকে MyProject.jar ফাইল তৈরি হবে।
৫. <copy>
: ফাইল কপি করা
<copy>
টাস্কটি একটি ফাইল বা ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে ফাইল কপি করতে ব্যবহৃত হয়।
<target name="copy-files">
<copy file="src/config.properties" tofile="build/config.properties" />
</target>
এটি src ডিরেক্টরিতে থাকা config.properties ফাইলকে build ডিরেক্টরিতে কপি করবে।
৬. <delete>
: ফাইল বা ডিরেক্টরি মুছে ফেলা
<delete>
টাস্কটি ফাইল বা ডিরেক্টরি মুছে ফেলতে ব্যবহৃত হয়।
<target name="clean">
<delete dir="build" />
</target>
এটি build ডিরেক্টরি সম্পূর্ণভাবে মুছে ফেলবে।
৭. <move>
: ফাইল স্থানান্তর করা
<move>
টাস্কটি ফাইল বা ডিরেক্টরি এক স্থান থেকে অন্য স্থানে সরাতে ব্যবহৃত হয়।
<target name="move-files">
<move file="src/config.properties" tofile="backup/config.properties" />
</target>
এটি config.properties ফাইলটিকে src থেকে backup ডিরেক্টরিতে স্থানান্তর করবে।
৮. <zip>
: ZIP ফাইল তৈরি করা
<zip>
টাস্কটি একটি ZIP আর্কাইভ তৈরি করতে ব্যবহৃত হয়।
<target name="zip-files">
<zip destfile="build/project.zip" basedir="build/classes" />
</target>
এটি build/classes ডিরেক্টরির সমস্ত ফাইল project.zip নামে সংরক্ষণ করবে।
৯. <unzip>
: ZIP ফাইল আনজিপ করা
<unzip>
টাস্কটি একটি ZIP ফাইল আনজিপ করতে ব্যবহৃত হয়।
<target name="unzip-files">
<unzip src="build/project.zip" dest="unzipped/" />
</target>
এটি project.zip ফাইলটি unzipped ডিরেক্টরিতে আনজিপ করবে।
১০. <junit>
: JUnit টেস্ট চালানো
<junit>
টাস্কটি JUnit টেস্ট চালানোর জন্য ব্যবহৃত হয়। এটি টেস্ট ফলাফল XML বা HTML আকারে প্রদান করে।
<target name="run-tests">
<junit printsummary="yes" haltonfailure="yes">
<classpath>
<pathelement path="build/classes"/>
<pathelement path="lib/junit.jar"/>
</classpath>
<test name="com.example.MyTestClass"/>
</junit>
</target>
এটি MyTestClass নামে একটি JUnit টেস্ট ক্লাস চালাবে এবং ফলাফল প্রদর্শন করবে।
১১. <exec>
: বাইরের প্রোগ্রাম চালানো
<exec>
টাস্কটি বাইরের প্রোগ্রাম বা কমান্ড চালাতে ব্যবহৃত হয়।
<target name="run-script">
<exec executable="sh">
<arg value="my-script.sh"/>
</exec>
</target>
এটি my-script.sh নামে একটি শেল স্ক্রিপ্ট চালাবে।
১২. <ftp>
: FTP সার্ভারে ফাইল ট্রান্সফার করা
<ftp>
টাস্কটি FTP সার্ভারে ফাইল আপলোড বা ডাউনলোড করতে ব্যবহৃত হয়।
<target name="ftp-upload">
<ftp server="ftp.example.com" userid="user" password="password" remotedir="/upload">
<fileset dir="build" includes="**/*.jar"/>
</ftp>
</target>
এটি build ডিরেক্টরিতে থাকা সমস্ত JAR ফাইলকে ftp.example.com সার্ভারে আপলোড করবে।
Apache ANT আপনাকে Custom Tasks তৈরির সুযোগ দেয়, যেখানে আপনি নিজস্ব টাস্ক সংজ্ঞায়িত করতে পারেন। উদাহরণস্বরূপ, নিচের মতো একটি কাস্টম টাস্ক তৈরি করা:
import org.apache.tools.ant.Task;
public class MyCustomTask extends Task {
private String message;
public void setMessage(String message) {
this.message = message;
}
public void execute() {
System.out.println("Custom Task Message: " + message);
}
}
এটি build.xml এ ব্যবহার করা যাবে:
<taskdef name="customtask" classname="com.example.MyCustomTask"/>
<target name="run-custom-task">
<customtask message="This is a custom ANT task!"/>
</target>
Apache ANT এর Tasks হলো এর মূল শক্তি, যা বিভিন্ন ধরনের কাজ যেমন Java ফাইল কম্পাইল করা, JAR ফাইল তৈরি করা, ফাইল কপি করা, এবং JUnit টেস্ট চালানো সহজ করে। ANT এর বিল্ট-ইন টাস্কগুলো ডেভেলপারদের প্রজেক্ট বিল্ড এবং ম্যানেজমেন্টকে স্বয়ংক্রিয় করতে সহায়ক। এছাড়া, ডেভেলপাররা নিজের প্রয়োজন অনুযায়ী Custom Tasks তৈরি করে ANT এর কার্যকারিতা বাড়াতে পারেন।
Apache ANT Tasks হলো বিল্ট-ইন কার্যক্রম বা কমান্ড, যা বিভিন্ন ধরনের কাজ সম্পন্ন করতে ব্যবহৃত হয়। একটি টাস্ক (Task) হল Apache ANT এর মূল উপাদান, যা বিল্ড প্রসেস এর বিভিন্ন ধাপে নির্দিষ্ট কাজগুলি সম্পন্ন করতে ব্যবহার করা হয়। টাস্কগুলো সাধারণত XML কনফিগারেশন ফাইলের মাধ্যমে সংজ্ঞায়িত হয় এবং ডেভেলপারদের জন্য কম্পাইলেশন, প্যাকেজিং, কপি, ক্লিন ইত্যাদি কাজ সহজ করে তোলে।
Apache ANT হলো একটি Java ভিত্তিক বিল্ড টুল, যা বিল্ড টাস্ক চালাতে ব্যবহৃত হয়। টাস্ক (Task) হলো ANT এর মূল অংশ, যা প্রকল্পের একটি নির্দিষ্ট কাজ সম্পাদন করে। একটি Task হলো একটি কাজের নির্দিষ্ট নির্দেশনা, যেমন ফাইল কপি করা, ডিরেক্টরি তৈরি করা, জাভা ফাইল কম্পাইল করা, জার (JAR) ফাইল তৈরি করা ইত্যাদি।
ANT বিভিন্ন প্রকারের বিল্ট-ইন টাস্ক সরবরাহ করে, যা প্রজেক্ট বিল্ড এবং ম্যানেজমেন্টকে সহজ করে। এগুলো build.xml ফাইলে target এর ভেতরে ব্যবহৃত হয়। ANT এর প্রধান টাস্কগুলো ব্যবহার করে ডেভেলপাররা প্রজেক্টের বিভিন্ন কাজ স্বয়ংক্রিয়ভাবে সম্পাদন করতে পারে।
Apache ANT এর বিভিন্ন বিল্ট-ইন টাস্ক রয়েছে, যা বিভিন্ন কাজ সম্পন্ন করতে ব্যবহৃত হয়। নিচে কিছু গুরুত্বপূর্ণ ANT টাস্কের উদাহরণ দেওয়া হলো:
১. <echo>
: বার্তা প্রদর্শন করা
<echo>
টাস্কটি কোনো নির্দিষ্ট বার্তা প্রিন্ট করতে ব্যবহৃত হয়। এটি console এ বার্তা প্রদর্শন করার জন্য ব্যবহৃত হয়।
<target name="display-message">
<echo message="Hello, Apache ANT!" />
</target>
উপরের উদাহরণে, ANT চালালে কনসোলে "Hello, Apache ANT!"
বার্তা প্রদর্শিত হবে।
২. <mkdir>
: ডিরেক্টরি তৈরি করা
<mkdir>
টাস্কটি একটি নতুন ডিরেক্টরি তৈরি করতে ব্যবহৃত হয়।
<target name="create-directory">
<mkdir dir="build/classes" />
</target>
এটি build/classes নামে একটি ডিরেক্টরি তৈরি করবে।
৩. <javac>
: জাভা ফাইল কম্পাইল করা
<javac>
টাস্কটি Java ফাইল কম্পাইল করতে ব্যবহৃত হয়।
<target name="compile">
<mkdir dir="build/classes"/>
<javac srcdir="src" destdir="build/classes" />
</target>
এটি src ডিরেক্টরিতে থাকা সমস্ত .java ফাইল কম্পাইল করে build/classes ডিরেক্টরিতে সংরক্ষণ করবে।
৪. <jar>
: JAR ফাইল তৈরি করা
<jar>
টাস্কটি JAR ফাইল তৈরি করতে ব্যবহৃত হয়।
<target name="create-jar" depends="compile">
<jar destfile="build/MyProject.jar" basedir="build/classes" />
</target>
এই উদাহরণে, build/classes ডিরেক্টরির সমস্ত ক্লাস ফাইল থেকে MyProject.jar ফাইল তৈরি হবে।
৫. <copy>
: ফাইল কপি করা
<copy>
টাস্কটি একটি ফাইল বা ডিরেক্টরি থেকে অন্য ডিরেক্টরিতে ফাইল কপি করতে ব্যবহৃত হয়।
<target name="copy-files">
<copy file="src/config.properties" tofile="build/config.properties" />
</target>
এটি src ডিরেক্টরিতে থাকা config.properties ফাইলকে build ডিরেক্টরিতে কপি করবে।
৬. <delete>
: ফাইল বা ডিরেক্টরি মুছে ফেলা
<delete>
টাস্কটি ফাইল বা ডিরেক্টরি মুছে ফেলতে ব্যবহৃত হয়।
<target name="clean">
<delete dir="build" />
</target>
এটি build ডিরেক্টরি সম্পূর্ণভাবে মুছে ফেলবে।
৭. <move>
: ফাইল স্থানান্তর করা
<move>
টাস্কটি ফাইল বা ডিরেক্টরি এক স্থান থেকে অন্য স্থানে সরাতে ব্যবহৃত হয়।
<target name="move-files">
<move file="src/config.properties" tofile="backup/config.properties" />
</target>
এটি config.properties ফাইলটিকে src থেকে backup ডিরেক্টরিতে স্থানান্তর করবে।
৮. <zip>
: ZIP ফাইল তৈরি করা
<zip>
টাস্কটি একটি ZIP আর্কাইভ তৈরি করতে ব্যবহৃত হয়।
<target name="zip-files">
<zip destfile="build/project.zip" basedir="build/classes" />
</target>
এটি build/classes ডিরেক্টরির সমস্ত ফাইল project.zip নামে সংরক্ষণ করবে।
৯. <unzip>
: ZIP ফাইল আনজিপ করা
<unzip>
টাস্কটি একটি ZIP ফাইল আনজিপ করতে ব্যবহৃত হয়।
<target name="unzip-files">
<unzip src="build/project.zip" dest="unzipped/" />
</target>
এটি project.zip ফাইলটি unzipped ডিরেক্টরিতে আনজিপ করবে।
১০. <junit>
: JUnit টেস্ট চালানো
<junit>
টাস্কটি JUnit টেস্ট চালানোর জন্য ব্যবহৃত হয়। এটি টেস্ট ফলাফল XML বা HTML আকারে প্রদান করে।
<target name="run-tests">
<junit printsummary="yes" haltonfailure="yes">
<classpath>
<pathelement path="build/classes"/>
<pathelement path="lib/junit.jar"/>
</classpath>
<test name="com.example.MyTestClass"/>
</junit>
</target>
এটি MyTestClass নামে একটি JUnit টেস্ট ক্লাস চালাবে এবং ফলাফল প্রদর্শন করবে।
১১. <exec>
: বাইরের প্রোগ্রাম চালানো
<exec>
টাস্কটি বাইরের প্রোগ্রাম বা কমান্ড চালাতে ব্যবহৃত হয়।
<target name="run-script">
<exec executable="sh">
<arg value="my-script.sh"/>
</exec>
</target>
এটি my-script.sh নামে একটি শেল স্ক্রিপ্ট চালাবে।
১২. <ftp>
: FTP সার্ভারে ফাইল ট্রান্সফার করা
<ftp>
টাস্কটি FTP সার্ভারে ফাইল আপলোড বা ডাউনলোড করতে ব্যবহৃত হয়।
<target name="ftp-upload">
<ftp server="ftp.example.com" userid="user" password="password" remotedir="/upload">
<fileset dir="build" includes="**/*.jar"/>
</ftp>
</target>
এটি build ডিরেক্টরিতে থাকা সমস্ত JAR ফাইলকে ftp.example.com সার্ভারে আপলোড করবে।
Apache ANT আপনাকে Custom Tasks তৈরির সুযোগ দেয়, যেখানে আপনি নিজস্ব টাস্ক সংজ্ঞায়িত করতে পারেন। উদাহরণস্বরূপ, নিচের মতো একটি কাস্টম টাস্ক তৈরি করা:
import org.apache.tools.ant.Task;
public class MyCustomTask extends Task {
private String message;
public void setMessage(String message) {
this.message = message;
}
public void execute() {
System.out.println("Custom Task Message: " + message);
}
}
এটি build.xml এ ব্যবহার করা যাবে:
<taskdef name="customtask" classname="com.example.MyCustomTask"/>
<target name="run-custom-task">
<customtask message="This is a custom ANT task!"/>
</target>
Apache ANT এর Tasks হলো এর মূল শক্তি, যা বিভিন্ন ধরনের কাজ যেমন Java ফাইল কম্পাইল করা, JAR ফাইল তৈরি করা, ফাইল কপি করা, এবং JUnit টেস্ট চালানো সহজ করে। ANT এর বিল্ট-ইন টাস্কগুলো ডেভেলপারদের প্রজেক্ট বিল্ড এবং ম্যানেজমেন্টকে স্বয়ংক্রিয় করতে সহায়ক। এছাড়া, ডেভেলপাররা নিজের প্রয়োজন অনুযায়ী Custom Tasks তৈরি করে ANT এর কার্যকারিতা বাড়াতে পারেন।